perm filename ATSIGN.MRC[UP,DOC]1 blob
sn#237252 filedate 1976-09-20 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00005 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 This documentation is semi-out-of-date. Most importantly, /J
C00015 00003 CURRENTLY IMPLEMENTED SWITCHES ARE DESCRIBED BELOW
C00032 00004 EXAMPLES:
C00035 00005 HOW TO USE THE XGP FEATURES:
C00047 ENDMK
C⊗;
;;This documentation is semi-out-of-date. Most importantly, /J
;; no longer means /L[FAIL]. New documentation will come soon. - MRC
THE SIMPLE CASES: ["<" AND ">" ARE METALINGUISTIC]
TYPE :@ <FILE NAME>
TO LIST YOUR MIDAS PROGRAM ON THE TPL LIKE TECO @.
TYPE :@ <TO FILE>←<FROM FILE>
TO PUT THE LISTING ON DISK.
TYPE :@ <FILE NAME>/C
TO GET A LISTING PLUS CREF.
OTHER EXAMPLES ARE AT THE END OF THIS FILE.
THE @ PROGRAM PRODUCES LISTINGS OF PROGRAMS IN A MANNER
SIMILAR TO THAT OF TECO'S @ COMMAND. IN ADDITION TO THIS,
IT HAS MANY OTHER FEATURES AND EXTENSIONS:
* LIKE TECO, IT PAGINATES THE LISTING AND NUMBERS
THE LINES, PRINTS TITLE PAGES, LEFT-MARGIN CROSS-
REFERENCES, AND SYMBOL TABLES.
* THE SYMBOL TABLE HAS A LARGER NUMBER OF FLAGS AND
INDICATORS, AND LISTS DUPLICATE DEFINITIONS.
* @ CAN HANDLE MULTIPLE-FILE LISTINGS; IN THIS CASE,
CROSS-REFERENCES WILL INCLUDE THE FILE NAME IF
DIFFERENT FROM THE CURRENT ONE.
* @ WILL PARSE MIDAS .INSRT'S, AND ADD THE FILES
SO FOUND TO THE LIST OF FILES TO SCAN FOR SYMBOL
DEFINITIONS. A SWITCH CONTROLS WHETHER OR NOT
SUCH FILES SHOULD ALSO THEMSELVES BE LISTED.
* @ CAN PRODUCE A CREF-TYPE LISTING, SHOWING ALL
PLACES WHERE SYMBOLS SEEN WERE DEFINED AND
REFERENCED. AGAIN, IN THE CASE OF MULTIPLE-FILE
LISTINGS THE FILES INVOLVED ARE INDICATED.
THE @-CREF ALSO INDICATES THE TYPE OF DEFINITION
OR REFERENCE MORE SPECIFICALLY THAN CREF DOES.
NOTE THAT @ PRODUCES A TEXTUAL CREF RATHER THAN
AN ASSEMBLY CREF; IT WILL NOT SEE GENERATED
SYMBOLS OR THOSE DEFINED BY MACROS, BUT WILL
CATCH ALL EXPLICIT TEXTUAL DEFINITIONS AND
REFERENCES REGARDLESS OF ASSEMBLY CONDITIONALS.
@ WILL PUT THIS CREF IN A SEPARATE OUTPUT FILE
(THE "AUXILIARY OUTPUT FILE") IF DESIRED.
* @ KNOWS SOME ABOUT THE XGP; IT IS CLEVER IN MINOR
DETAILS SUCH AS PRINTING ONE TITLE PAGE INSTEAD OF
TWO, AND FURTHERMORE WILL PRODUCE OUTPUT IN MORE
THAN ONE FONT IF DESIRED.
ALSO, @ WILL OPTIONALLY REMEMBER WHICH FONT(S) THE
LISTING SHOULD BE PRINTED IN, AND WHAT ;VSP SETTING TO
USE. @ WILL OUTPUT APPROPRIATE INSTRUCTIONS TO CAUSE
THOSE THINGS TO BE DONE, AND AUTOMATICALLY DEFAULT
THE PAGE LENGTH AND WIDTH TO THE RIGHT VALUE
FOR THE FONTS AND VSP USED. SEE "F" AND "V" SWITCHES.
* @ CAN PRODUCE "LISTING RECORD" FILES WHILE IT
LISTS THE TEXT; WHEN THE TEXT IS SUBSEQUENTLY
EDITED AND RE-LISTED, THE LREC FILE FOR THE
PREVIOUS VERSION MAY BE SPECIFIED AS INPUT TO @,
WHICH WILL THEN PRODUCE A COMPARISON LISTING:
ONLY THOSE PAGES ON WHICH THE TEXT HAS BEEN
ALTERED ARE PRINTED. THUS ONE CAN XGP A FILE
AND KEEP IT IN A LOOSELEAF BINDER, AND SUBSEQUENTLY
PRINT AND UPDATE ONLY THOSE PAGES WHICH HAVE CHANGED.
* @ UNDERSTANDS LISP CODE TO SOME EXTENT, AND CAN
PRODUCE LISTINGS WITH SYMBOL TABLES OF FUNCTION
DEFINITIONS, ETC.
PRESENTLY @ KNOWS ABOUT THE SYNTAX OF MIDAS, FAIL, PALX11, AND LISP.
IT CAN ALSO BE TOLD TO TREAT SOURCE FILES AS RANDOM TEXT
(CONTAINING NO SYMBOLS TO BE CROSS-REFERENCED). IT MAY
SOMEDAY KNOW ABOUT OTHER LANGUAGES. THE "/L" SWITCH IS
USED TO TELL @ WHAT LANGUAGE THE FILES BEING LISTED
ARE WRITTEN IN.
@ REQUIRES A LINE OF JCL SPECIFYING WHAT FILES TO LIST;
IF THAT IS NOT SUPPLIED, @ WILL READ A LINE FROM THE TTY.
THE JCL CONSISTS OF ONE OR MORE FILE
SPECS SEPARATED BY COMMAS. EACH FILE SPEC IN TURN HAS
AN OUTPUT FILE NAME, A BACKARROW, AN INPUT FILE NAME,
APOSTROPHES, AND SWITCHES. ANY OF THESE ITEMS MAY BE
OMITTED; @ WILL TRY TO DEFAULT THEM IN A REASONABLE MANNER.
IN GENERAL, DEVICES AND SNAMES ARE DEFAULTED STICKILY, BUT
THERE IS A SEPARATE DIRECTORY FOR EACH TYPE OF FILE AND EACH
DIRECTION. FN1'S ARE DEFAULTED STICKILY, ALL TOGETHER.
FN2'S ARE DEFAULTED FOR EACH FILE SEPARATELY, INDEPENDENT
OF WHAT IS SPECIFIED FOR OTHER FILES.
NORMAL INPUT AND OUTPUT FILES HAVE SEPARATE DEFAULT DIRECTORIES
(DIRECTORY = DEVICE AND SNAME).
EACH STARTS OUT AS DSK:<MSNAME>;. FOR
OUTPUT FILES THERE IS ONE QUIRK: IF NO "←" HAS YET APPEARED,
AND THE LISTING IS NOT AN XGP LISTING, TPL: IS USED AS THE
OUTPUT DEVICE.
THE INPUT FN2 OF EACH ORDINARY FILE IS DEFAULTED TO ">".
THE OUTPUT FN2 DEFAULTS TO EITHER "@" OR "@XGP", DEPENDING
ON WHETHER THE LISTING IS AN XGP LISTING.
THE INITIAL DEFAULT FN1 IS "@"; EACH FILE'S FN1 DEFAULTS TO
THE PREVIOUS FILE'S, EXCEPT THAT IF A PARTICULAR FILE HAS ITS
INPUT FN1 SPEC'D BUT NOT ITS OUTPUT, THE OUTPUT FN1 DEFAULTS
TO THE INPUT FN1. FOR EXAMPLE, IN "FOO;←BAR;BLETCH" THE OUTPUT
FN1 DEFAULTS TO "BLETCH", BUT IN "FOO,BAR;" THE SECOND FILE'S
OUTPUT AND INPUT FN1'S DEFAULT TO "FOO".
THE LREC INPUT AND OUTPUT DEVICES DEFAULT TO EACH OTHER.
IN OTHER WORDS, OF ONLY ONE IS SPEC'D, THE UNSPEC'D ONE
DEFAULTS TO THE OTHER. IF NEITHER IS SPEC'D, THEY BOTH
DEFAULT TO "DSK". THE INPUT AND OUTPUT SNAMES ARE TREATED
SIMILARLY EXCEPT THAT THE ULTIMATE DEFAULT IS THE USER'S MSNAME.
THE LREC INPUT FN2 DEFAULTS IN A COMPLICATED MANNER: "LREC" IS USED
IF A FILE WITH THAT FN2 EXISTS; OTHERWISE, ">" IS USED.
THE OUTPUT FN2 DEFAULTS NORMALLY TO "LREC", BUT THE PRESENCE OF
THE /M SWITCH WITH ONE OF THE NORMAL FILES CAN CHANGE THAT.
IF THE NAME IS DEFAULTED TO LREC, AND A FILE WITH THAT NAME EXISTS
ALREADY, THAT OLD FILE IS RENAMED "OLREC" (ANY PREVIOUS "OLREC"
FILE IS DELETED).
IF NO ← IS PRESENT IN A FILE SPEC, THEN ANY NAMES GIVEN ARE INPUT NAMES.
NORMALLY A FILE SPEC DEFINES BOTH AN INPUT AND AN OUTPUT
FILE: FOR NORMAL FILES, TEXT INPUT AND LISTING OUTPUT;
FOR LREC FILES, OLD LREC AND NEW LREC. IF, HOWEVER,
A ' IS PRESENT IN THE FILE SPEC, THEN ONLY ONE DIRECTION
IS USED (INPUT, UNLESS ← IS PRESENT). IF TWO ''S ARE PRESENT,
THEN THAT FILE IS NEITHER INPUT NOR OUTPUT (THIS IS GOOD FOR
SUPPRESSING THE USE OF A PARTICULAR FILE WHICH WOULD OTHERWISE
BE .INSRT'D).
IF AN INPUT FILE CONTAINS SUBTITLES (.SBTTL OR .STITL IN PDP11
CODE; SUBTTL IN PDP10 CODE; (COMMENT ... ) IN LISP)
@ RESERVES THE FIRST LINE OF EACH PAGE FOR THE CURRENT SUBTITLE,
AND STARTS THE TEXT ON THE SECOND LINE. IF YOU WOULD LIKE TO
PREVENT @ FROM EVER TRYING TO PUT TEXT ON THE FIRST LINE OF
A PHYSICAL PAGE, JUST PUT A (POSSIBLY NULL) SUBTITLE IN THE FILE.
ASSEMBLER LANGUAGE FILES CONTAINING THE PSEUDO .AUXIL ARE
REGARDED AS FILES OF AUXILIARY SYMBOL DEFINITIONS. SYMBOLS
WHICH APPEAR ONLY IN INPUT-ONLY AUXILIARY FILES WILL NOT BE
CREFFED. THUS, IF YOU .INSRT SYSENG;TTY DEFS AND REFER ONLY
TO THE SYMBOL %TOERS, IT WILL APPEAR IN THE CREF (BOTH USE
AND DEFINITION) BUT THE DOZENS OF OTHER SYMBOLS DEFINED IN
SYSENG;TTY DEFS WILL NOT. HOWEVER, IF TTY DEFS WERE LISTED,
ALL THE SYMBOLS WOULD APPEAR. DO NOT BE BOTHERED BY THE FACT
THAT .AUXIL IS NOT DEFINED IN MIDAS; JUST DO
IFN 0,[
.AUXIL
]
SWITCHES ARE SINGLE CHARACTERS, POSSIBLY PRECEDED BY DECIMAL
NUMBERS. USE - FOR NEGATIVE NUMBERS; -X = -1X. FOR TWO-STATE
SWITCHES, IF X TURNS IT ON -X WILL TURN IT OFF.
SOME SWITCHES ALSO TAKE TRAILING ARGUMENTS ENCLOSED IN [];
THE MEANING OF SUCH AN ARGUMENT IS DESCRIBED BELOW FOR EACH
INDIVIDUAL SWITCH WHICH CAN TAKE SUCH AN ARGUMENT.
ONE MAY ENCLOSE SEVERAL SWITCHES IN PARENTHESES, OR PRECEDE
SINGLE SWITCHES WITH /. THUS VALID SWITCH SPECIFICATIONS
WOULD BE (S C-U) OR /S/C/-U OR (SC)/-U
OR (L[LISP]54W) OR /L[LISP](54W120V)/F[20FG]
OR WHATEVER. SPACES OR COMMAS BETWEEN SWITCHES IN
PARENTHESES ARE IGNORED. NOTE THAT IF THE /G SWITCH
IS USED, THE DEFAULT VALUES OF ALL SWITCHES ARE THOSE
REMEMBERED IN THE INPUT LREC FILE, RATHER THAN THE VALUES
STATED BELOW.
CURRENTLY IMPLEMENTED SWITCHES ARE DESCRIBED BELOW
(* INDICATES A PER-FILE SWITCH; ALL OTHERS
ARE GLOBAL SWITCHES; DEFAULT IS OFF (-X) UNLESS OTHERWISE
STATED):
# INHIBITS THE PRINTING OF ANYTHING AT ALL
IN THE LEFT MARGIN, EVEN THE LINE NUMBERS.
* $ INHIBITS PRINTING THE SYMBOL TABLE AT
THE END OF THE FILE. IN THE COMMAND
STRING, THE DEFAULT FOR THIS SWITCH IS
INITIALLY OFF, AND EACH TIME IT IS
MENTIONED IT IS USED NOT ONLY FOR THAT FILE
BUT FOR THE DEFAULT FOR THE REST.
NOTE: FOR FILES GOBBLED BY /G,
THE SWITCH IS ALWAYS SET AS REMEMBERED IN THE
/G'D LREC FILE. TO OVERRIDE, SPECIFY THE
FILE EXPLICITLY.
FOR .INSRT'ED FILES, THE /$ SWITCH DEFAULT IS
THE WAY THE SWITCH WAS SET AT THE END OF READING
THE COMMAND STRING.
% THE HEADINGS AT THE TOP OF EACH PAGE, WHICH NORMALLY
CONTAIN THE FILE NAME AND PAGE NUMBER,
SHOULD ALSO CONTAIN THE DATE PRINTED.
? THE INPUT IS RANDOM TEXT; IT IS LISTED
AND PAGINATED, BUT NO CROSS-REFERENCES
ARE CREATED. THIS IS LIKE :@ IN TECO.
THIS SWITCH IS EQUIVALENT TO "/L RANDOM ".
* @ THIS FILE IS A LISTING RECORD FILE FOR
COMPARISON LISTINGS.
A ARBITRARILY LONG SYMBOLS SHOULD BE
KEPT BY @; THIS IS THE DEFAULT FOR LISP
CODE. IF OFF (-A, THE DEFAULT FOR MIDAS
AND OTHER ASSEMBLY CODE), THEN ONLY THE
FIRST SIX CHARACTERS ARE RETAINED AND USED.
C KEEP TRACK OF ALL REFERENCES AND PRINT
A CREF AT THE END OF THE LAST FILE OUTPUT.
"/-C" SAYS THERE SHOULD BE NO CREF.
C[<FILE>]
IS THE SAME AS "CU[<FILE>]" - IT SPECIFIES THE
AUXILIARY OUTPUT FILE AND REQUESTS A CREF.
D WHEN A REFERENCE IS MADE TO ANOTHER FILE
IN THE LEFT MARGIN, USE ONLY THE FIRST TWO
CHARACTERS OF THE FIRST FILE NAME INSTEAD
OF THE WHOLE FILE NAME. THIS REDUCES THE
WIDTH GOBBLED UP BY THE CROSS-REFERENCE DATA
AT SOME COST OF READABILITY.
F IS A DUAL PURPOSE SWITCH. <N>F SIMPLY SETS
THE NUMBER OF FONTS TO BE USED, WHILE
F[<FONT1>,<FONT2>,<FONT3>] SETS THE NAMES OF
FONTS. THE TWO FORMS MAY BE COMBINED: <N>F[<FONTS>].
F[<FONT1>,<FONT2>,<FONT3>]
TELLS @ THAT THE SEPCIFIED FONTS ARE TO BE USED.
IF ONE OF THE FONT NAMES IS NULL, IT IS CONSIDERED
NOT SPECIFIED. THERE NEED NOT ACTUALLY BE THREE
FONTS NAMED; ONLY AS MANY AS IT IS DESIRED TO SPECIFY.
THUS, "F[,20FR]" SPECIFIES ONLY FONT 2 (USED FOR
THE REFERENCES). A FONT SPEC IS REALLY A FILE SPEC;
THE DEVICE DEFAULTE TO "DSK"; THE SNAME, TO "FONTS";
THE FN2, TO "KST". FONTS SPECIFIED WILL BE REMEMBERED
IN ANY OUTPUT LREC FILE.
<N>F USE THE SPECIFIED NUMBER OF FONTS ON OUTPUT.
IMPLIES THE X SWITCH (XGP). IF TWO FONTS,
THEN REFERENCE DATA USES THE FIRST FONT AND
TEXT THE SECOND FONT. FOR THREE FONTS,
COMMENTS USE THE THIRD FONT, WHERE A COMMENT
IS TEXT ON A LINE FOLLOWING A SEMICOLON
PRECEDED BY TABS OR SPACES ... MAYBE.
* G LIKE "@", BUT CAUSES THE SWITCH SETTINGS
REMEMBERED IN THE INPUT LREC FILE TO BE USED
AS THE DEFAULTS FOR ALL GLOBAL SWITCHES NOT
SPECIFIED BY THE USER,
AND CAUSES ALL THE FILES MENTIONED IN
THE INPUT LREC FILE (THAT IS, ALL THE FILES
WHICH WERE KNOWN TO THE @ PROGRAM WHEN THE LREC
FILE WAS WRITTEN) TO BE .INSRT'ED (USED TO FIND
SYMBOLS IN). OF COURSE, THE MOST RECENT VERSIONS
OF THOSE FILES ARE USED, RATHER THAN THE
VERSIONS REMEMBERED IN THE LREC FILE.
THESE FILES WILL HAVE THE SAME
PER-FILE SWITCH SETTINGS AS THEY DID WHEN THE
LREC FILE WAS PRODUCED, EXCEPT THAT IF ANY OF
THE FILES IS EXPLICITLY SPECIFIED (IN THE
COMMAND LINE) THE EXPLICITLY SPECIFIED PER-FILE
SWITCH SETTINGS OVERRIDE THOSE BROUGHT FROM THE
LREC FILE. FILES INHIBITED WITH '' WHEN THE LREC
FILE WAS MADE WILL ALSO BE INHIBITED WHEN THAT
LREC FILE /G'D (UNLESS THEY ARE EXPLICITLY SPECD
IN THE COMMAND LINE NOT TO BE INHIBITED).
BECAUSE THE ABILITY TO USE THE REMEBERED SWITCH
SETTINGS AND FILES IS VALUABLE BY ITSELF, /-G HAS
THE MEANING, "USE THE REMEMBERED SWITCH SETTINGS
AND FILE NAMES, BUT MAKE A FULL LISTING RATHER
THAN A COMPARISON LISTING".
H ON => OUTPUT ↑H AS REAL BACKSPACE, CAUSING OVERPRINTING.
OFF => OUTPUT AS UPARROW-H
(FOR XGP, IF "↑" SWITCH IS GIVEN, OUTPUT AS A QUOTED CONTROL-H)
I ALL .INSRT'D FILES (UNLESS INDIVIDUALLY
INHIBITED) SHOULD BE LISTED. DEFAULT IS TO
USE THEM ONLY FOR THE SYMBOL DEFINITIONS
THEY CONTAIN. FOR LISP CODE, THE INCLUDE
FUNCTION SPECIFIES INSERTED FILES FOR THIS PURPOSE.
J THE INPUT FILES ARE "FAIL" CODE. THE FAIL
OPERATORS ARE USED INSTEAD OF THE MIDAS OPS
FOR FINDING SYMBOL DEFINITIONS, ETC.
"/J" IS EQUIVALENT TO "/L FAIL ".
L IS USED TO SPECIFY THE SOURCE LANGUAGE OF
THE FILES BEING LISTED, TELLING @ HOW TO FIND
SYMBOL DEFINITIONS, ETC. THE "L" SHOULD BE
FOLLOWED BY THE NAME OF THE LANGUAGE, ENCLOSED
IN SQUARE-BRACKETS. THERE SHOULD BE NO SPACES
BETWEEN THE "L" AND THE OPEN-BRACKET.
THE LANGUAGE NAME MAY BE ABBREVIATED.
LANGUAGES CURRENTLY KNOWN TO @ ARE "MIDAS",
"PALX11", "FAIL", "LISP" AND "RANDOM" (WHICH
MEANS THAT THE FILES ARE TEXT AND CONTAIN NO
SYMBOL DEFINITIONS OR REFERENCES).
HOWEVER, "MIDAS" IS THE DEFAULT AND NEED NOT
BE MENTIONED.
THUS, "(L[FAIL] X)" SPECIFIES FAIL CODE BEING
LISTED FOR THE XGP.
* M IDENTIFIES THE FILE IT IS SPEC'D WITH AS THE "MAIN"
FILE. THIS MEANS THAT THE LREC FILE VERSION NUMBER
IS SYNCHRONIZED TO THIS FILE'S VERSION NUMBER.
IN MORE DETAIL, IF AN LREC FILE IS WRITTEN, ITS
DEFAULT FN2 IS THE REAL FN2 OF THE "MAIN" FILE.
FOR THIS TO BE REASONABLE, THE LREC FILE SHOULD
EITHER BE KEPT ON A DIFFERENT DIRECTORY FROM THE
"MAIN" INPUT FILE, OR SHOULD HAVE A DIFFERENT FN1.
IF NEITHER OF THOSE IS THE CASE, THE DEFAULT FN2
OF THE LREC FILE WILL BE LREC -- OTHERWISE, THE LREC
FILE WRITTEN WOULD OVERWRITE THE INPUT FILE!
IF YOU ARE USING THE /M FEATURE, YOU MIGHT ALSO WANT
TO USE /G WITH THE LREC FILE - THAT WILL MAKE THE
DEFAULT INPUT FN2 ">", WHICH IS JUST RIGHT.
N OMIT THE CROSS-REFERENCE DATA ON THE LEFT
MARGIN (BUT STILL PRODUCE A SYMBOL TABLE AND
CREF IF APPROPRIATE).
O MEANS FILES ARE OLD. THIS IS USED FOR
CREATING LREC FILES FOR YOUR OLD FILES WITHOUT
LISTING THEM, SO THAT YOU CAN MAKE COMPARISON
LISTINGS OF THE NEW ONES. (THIS IS IN CASE
YOU DIDN'T MAKE AN LREC FILE THE LAST TIME YOU
LISTED THEM.) THE (O) SWITCH EFFECTIVELY
SUPPRESSES OUTPUT OF LISTINGS FOR ALL FILES.
THIS IS LIKE PUTTING A ' IN EVERY FILE SPEC,
EXCEPT THAT ' INHIBITS THE PRODUCTION OF
LREC DATA, WHILE (O) ALLOWS IT.
* <N>P THE PAGE NUMBER OF THE FIRST PAGE TO BE LISTED.
(DEFAULT 1.) USEFUL FOR RESTARTING TPL
LISTINGS LOST IN A CRASH.
Q A QOPYRIGHT MESSAGE IS PRINTED AT THE BOTTOM
OF EACH PAGE. THE DEFAULT MESSAGE IS: "(c) Copyright
1974 Massachusetts Institute of Technology.
All rights Reserved." EXCEPT THAT THE CORRECT
YEAR IS SUBSTITUTED. A DIFFERENT MESSAGE MAY
BE SPECIFIED BY USING []: /Q[This is a message].
[] MAY BE USED IN THE MESSAGE IF THEY ARE BALANCED,
OR IF QUOTED BY ↑Q.
R OFF => ONLY <CRLF> COUNTS AS A LINE-SEPARATOR.
STRAY CR'S AND LF'S WILL APPEAR IN THE LISTING
AS UPARROW-M AND UPARROW-J, EXCEPT THAT IN XGP LISTINGS
IF THE "↑" SWITCH IS SET THEY WILL COME OUT AS
QUOTED CONTROL-M'S AND CONTROL-J'S.
ON => ALL LF'S COUNT AS LINE-SEPARATORS;
STRAY CR'S CAUSE OVERPRINTING.
S ONLY ONE SINGLE OUTPUT FILE SHOULD BE
CREATED, THE CONCATENATION OF ALL THE OUTPUT
FILES.
T -T (THE DEFAULT) IF A LINE IS TOO LONG, INSERT CRLF'S.
1T (OR JUST T) => TRUNCATE LONG TEXT LINES TO FIT THE LINEL.
0T => LET THEM RUN OVER.
(TABLES PRODUCED BY @ ALWAYS STAY WITHIN
THE LINEL BY DESIGN.)
<N>U UNIVERSAL SYMBOL TABLES. IF <N> IS NEGATIVE,
EACH FILE'S SYMBOL TABLE WILL BE A UNIVERSAL ONE
(WILL LIST ALL SYMBOLS IN ALL FILES). IF <N> IS
0 (THE DEFAULT CASE), EACH FILE'S SYMBOL TABLE
WILL BE NORMAL (LIST ONLY THAT FILE'S SYMBOLS).
IF <N> IS POSITIVE, THE FILES' SYMBOL TABLES
WILL BE NORMAL, BUT THERE WILL BE <N> EXTRA
UNIVERSAL SYMBOL TABLES PRINTED. THEY WILL GO IN
THE AUXILIARY OUTPUT FILE IF THERE IS ONE;
OTHERWISE, AT THE END OF ONE OF THE LISTING FILES.
U[<FILE>]
SPECIFIES THE NAME OF THE AUXILIARY OUTPUT FILE,
AND THAT THERE SHOULD BE ONE.
THE AUXILIARY OUTPUT FILE IS USED TO HOLD ALL OUTPUT
NOT ASSOCIATED WITH ANY PARTICULAR INPUT FILE.
THIS NOW MEANS CREFS AND UNIVERSAL SYMBOL TABLES.
THE DEFAULT NAMES ARE
"ODEV:OSNM;OFN1 @CREF", WHERE "ODEV", ETC.,
REFER TO THE DEFAULT OUTPUT FILE NAMES AS THEY
ARE AT THE END OF THE COMMAND STRING. IF LREC
FILES AND /G ARE IN USE, NOTE THAT THE
UNSPECIFIED NAMES WILL BE RE-DEFAULTED EACH TIME
A LISTING IS MADE; IF THE DEVICE AND SNAME ARE
UNSPECIFIED THEN IN EACH LISTING THE AUXILIARY
OUTPUT FILE WILL GO ON THE SAME DIRECTORY AS THE
OTHER OUTPUT FILES.
U[NONE:]
SPECIFIES THAT THERE BE NO AUXILIARY OUTPUT FILE.
WHAT WOULD NORMALLY GO IN IT, GOES AT THE END OF
ONE OF THE REGULAR OUTPUT FILES.
<N>U[<FILE>]
COMBINES THE TWO FUNCTIONS OF THE "U" SWITCH.
V IS A MULTI-PURPOSE SWITCH, WHICH CAN SET EITHER THE
PAGE HEIGHT OR THE VSP. GIVEN ANY REASONABLE PAGE
HEIGHT (>30 OR SO) THE PAGE HEIGHT IS SET. GIVEN A
REASONABLE VSP (<= 15) THE VSP IS SET.
GIVEN A NEGATIVE ARGUMENT,
THE VSP IS SET TO ITS ABSOLUTE VALUE.
THE DEFAULT VSP IS 4 (OR WHATEVER COMES FROM AN
LREC FILE). THE DEFAULT PAGE HEIGHT IS MORE
COMPLICATED. IF FONTS AND VSP HAVE NOT BEEN
SPECIFIED, EITHER IN THE COMMAND OR FROM AN
LREC FILE, THE DEFAULT IS 60. IF FONTS OR VSP
HAVE BEEN SPECIFIED, THE DEFAULT IS THE RIGHT
NUMBER OF LINES OF THAT FONT TO FIT ON A
NORMAL 11 INCH XGP PAGE WITH NORMAL MARGINS.
<N>W SET PAGE WIDTH. THE DEFAULT FOR NON-XGP LISTINGS
IS 120. FOR XGP LISTINGS THE DEFAULT IS 89. IF
FONTS HAVE NOT BEEN SPECIFIED. IF FONTS HAVE
BEEN SPECIFIED, THE DEFAULT IS THE NUMBER OF
CHARACTERS OF THE WIDEST FONT, THAT WILL FIT
IN AN 8.5 INCH XGP LINE, WITH NORMAL MARGINS.
X XGP OUTPUT (ALSO IMPLIED BY F SWITCH).
Z A TABLE OF CONTENTS SHOULD BE PRINTED, USING
SUBTITLES FROM THE VARIOUS SUBTITLE PSEUDO-OP'S.
↑ ON => CONTROL CHARS ARE OUTPUT AS THEMSELVES
(ON XGP, THEY ARE XGP-QUOTED IF NECESSARY)
OFF => CONTROL CHARS OUTPUT AS UPARROW-
<CHAR+100 ASCII>
WHEN THE LANGUAGE FAIL IS SELECTED, THIS SWITCH
DEFAULTS ON; OTHERWISE, OFF.
EXAMPLES:
[1] TO LIST A MIDAS PROGRAM ON TPL AND GET A CREF:
:@ LOSER;MY PROG/C OR :@ LOSER;MY PROG(C)
NOTE THAT SINCE NO "←" HAS APPEARED, TPL: IS USED AS
THE OUTPUT DEVICE RATHER THAN DSK:
[1A] TO PUT THE OUTPUT ON DSK: INSTEAD:
:@ ←LOSER;MY PROG/C
PUTS THE OUTPUT IN DSK:<MSNAME>;MY @. DSK: IS USED
BECAUSE IT IS THE DEFAULT, AND THE SPECIAL CROCK THAT
USES TPL: INSTEAD IS SUPPRESSED BY THE PRESENCE OF THE "←".
[2] TO LIST A MIDAS PROGRAM "FOO >" ON THE XGP IN TWO FONTS,
AND LIST ALL .INSRT'D FILES AS WELL:
:@ LOSER;FOO (2F I)
[3] TO LIST "FOO BAR", AND JUST REFERENCE SYMBOLS IN BUT
NOT LIST "QUUX BAZ":
:@ FOO BAR,'QUUX BAZ
[4] TO LIST "ITS >" AND LIST ALL .INSRT'D FILES, BUT NOT
"TS2TTY >" BECAUSE IT IS OBSOLETED BY "TS3TTY >":
:@ SYSENG;ITS,''TS2TTY(I)
[5] THIS IS HOW ITS WOULD BE LISTED NOW,
IF ALL OLD LREC FILES DISAPPEARED:
:@ SYSENG;ITS(F[20FG] I $ 1U[ITS]),SYSLRC;ITS←'(@ -$)
SYSENG;ITS > AND ALL .INSRT'ED FILES ARE LISTED FOR THE XGP WITH
FONT 20FG. ITS HAS NO SYMBOL TABLE, BUT EVERY OTHER FILE HAS ONE
(BECAUSE THE -$ IN THE LREC FILE SPEC SETS THE DEFAULT FOR
.INSRT'ED FILES). ALSO, A UNIVERSAL SYMBOL TABLE IS PUT IN A
FILE NAMED ITS @CREF ON THE SAME DIRECTORY AS THE LISTING FILES.
[6] SUPPOSE FOO DOES A .INSRT OF BAR, BAZ, AND QUUX.
TO LIST JUST BAZ, BUT SEE REFERENCES TO THE OTHER FILES:
:@ 'FOO,BAZ
THIS CAUSES FOO TO BE INPUT-ONLY. ALL .INSRT'ED FILES ARE
INPUT-ONLY BY DEFAULT, SINCE THERE IS NO /I SWITCH, EXCEPT
FOR BAZ, WHICH IS LISTED BECAUSE IT IS MENTIONED EXPLICITLY
IN SUCH A WAY AS TO SAY THAT IT SHOULD BE LISTED.
[7] SAME SITUATION, BUT TO LIST ALL EXCEPT BAZ:
:@ FOO/I,'BAZ
THIS EXPLICITLY MAKES BAZ INPUT-ONLY. ANY OTHER .INSRT'ED
FILES WILL BE LISTED, BECAUSE OF THE /I SWITCH.
HOW TO USE THE XGP FEATURES:
ON THE LOWEST LEVEL, SIMPLY SPECIFYING /X WILL CAUSE @ TO DO THE
MINIMUM NECESSARY TO MAKE A FILE WHICH CAN BE PRINTED PROPERLY
ON THE XGP. IT WILL ALSO DO A FEW NICE THINGS SUCH AS PRINT
ONLY ONE TITLE PAGE.
THE DEFAULT LINEL AND PAGEL WILL BE RIGHT FOR THE XGP'S DEFAULT
FONT, 25FG, BUT THEY CAN BE SET WITH /W AND /V.
ON A HIGHER LEVEL, YOU CAN TELL @ WHICH FONT YOU PREFER, AND @
WILL AUTOMATICALLY CAUSE THE XGP TO USE THAT FONT. @ WILL ALSO
FIGURE OUT HOW BIG A PAGE AND LINE ARE IN THAT FONT. JUST SAY,
FOR EXAMPLE, "/F[20FG]" OR "/F[FONTS;20FG KST]" TO SPECIFY FONT
20FG. THE VSP CAN ALSO BE SPECIFIED, AS IN /6V (THE DEFAULT IS
4, WHICH IS GOOD WITH 20FG, WHICH IS THE FONT I PREFER).
@ HAS THE ABILITY TO CAUSE PARTS OF THE LISTING TO COME OUT IN
DIFFERENT FONTS. NORMALLY, EVERYTHING IS IN FONT 0, BUT THE
SWITCH "/2F" CAUSES THE ACTUAL TEXT OF THE FILE TO APPEAR IN
FONT 1 (CROSS -REFS, LINE AND PAGE NUMBERS, THE TITLE PAGE, ETC.
ARE STILL IN FONT 0). "/3F" CAUSES COMMENTS IN THE TEXT TO
APPEAR IN FONT 3. THIS MEANING OF THE F SWITCH IS DISTINGUISHED
FROM THE OTHER BY THE PRESENCE OF THE DIGIT AND THE ABSENCE OF
THE BRACKET AFTER THE F; IT DOES NOT SPECIFY WHICH FONTS ARE TO
BE USED TO PRINT THE LISTING. HOWEVER, YOU CAN ALSO SPECIFY
WHICH FONTS TO USE, AS IN "/2F[20FG,RMS;MYFONT]" WHICH IS THE
SAME IN EFEFCT AS "/2F /F[20FG, RMS;MYFONT]"
HOW TO MAKE COMPARISON LISTINGS, USING THE OLD NAMING SCHEME
FOR LREC FILES:
(IN THE OLD NAMING SCHEME, THE LREC FILE FOR THE MOST RECENT
LISTING OF "FOO >" IS CALLED "FOO LREC"; THE LREC FILE OF THE
PREVIOUS LISTING IS CALLED "FOO OLREC"; EARLIER LREC FILES DO
NOT STAY AROUND).
[1] TO MAKE THE FIRST, FULL, LISTING, AND MAKE AN LREC FILE SO
THAT THE NEXT VERSION CAN BE COMPARISON-LISTED, DO
:@ FOO >,FOO LREC←'/@
OR
:@ FOO,←'/@
OTHER SWITCHES MAY BE INCLUDED; THEY WILL BE REMEMBERED IN THE
LREC FILE. IT IS PERMISSABLE TO PUT THE LREC FILE ON A DIFFERENT
DIRECTORY - JUST SPECIFY THE DIRECTORY NAME IN THE LREC FILE SPEC.
[2] TO MAKE A COMPARISON LISTING OF A LATER VERSION, DO
:@ FOO/G
THIS TELLS @ TO LOOK AT FOO LREC AND DETERMINE FROM IT WHICH
FILES TO LIST, AND WHAT SWITCH SETTINGS TO USE. IN ADDITION, THE
FILES LISTED ARE COMPARED AGAINST THE INFORMATION ABOUT THE
PREVIOUS LISTING, WHICH IS ALSO REMEMBERED IN FOO LREC.
A NEW LREC FILE IS WRITTEN OUT, AS FOO LREC, AND THE OLD
FOO LREC IS RENAMED FOO OLREC.
ANY GIVEN SWITCH SETTING MAY BE OVERRIDDEN BY EXPLICITLY
SPECIFYING IT ONE WAY OR THE OTHER IN THE COMMAND STRING. ALL
OTHER SWITCHES NOT EXPLICITLY SET WILL STILL BE REMEMBERED FROM
THE LREC FILE. IN ADDITION, BY EXPLICITLY SPECIFYING FILES WITH
ZERO, ONE OR TWO SINGLE-QUOTES THE SET OF FILES TO BE USED OR
LISTED MAY BE CHANGED, BUT AGAIN, ANY FILE NOT MENTIONED WILL BE
TREATED AS THE LREC FILE SAYS.
[3] EVERY SO OFTEN, IT IS GOOD TO MAKE A NEW FULL LISTING.
THAT IS BECAUSE A COMPARISON LISTING ISN'T A PERFECT UPDATE - IT
DOES NOT UPDATE CROSS REFERENCES ON UNCHANGED PAGES (THOUGH THIS
IS A MINOR PROBLEM), AND IT CAN LEAD TO GROSSNESS WHEN MANY
NEW PAGES ARE INSERTED (SUCH AS HAVING PAGE 25 CALLED PAGE 5/20
BECAUSE 20 PAGES WERE INSERTED BEFORE WHAT HAD ORIGINALLY BEEN
PAGE 6).
THIS COULD BE DONE BY STARTING FROM SCRATCH AS IN [1], BUT THAT
WOULD REQQUIRE RE-SPECIFYING ALL SWITCHES AND FILES. A BETTER
WAY IS THIS:
:@ FOO/-G
THIS USES FOO LREC TO GET THE FILE NAMES AND SWITCHES, BUT MAKES
FULL LISTINGS RATHER THAN COMPARISON LISTINGS.
[4] IF YOU MADE A LISTING AND FORGOT TO MAKE AN LREC FILE,
YOU CAN SOMETIMES MAKE UP FOR THAT.
A) IF THE LAST LISTING WAS A FULL LISTING, JUST DO
:@ FOO 69,FOO LREC←'/@/O
THE /O CAUSES @ TO SAVE TIME BY NOT MAKING A LISTING OF
FOO 69 - IT JUST MAKES THE LREC FILE IT WOULD MAKE IF IT
WERE MAKING SUCH A LISTING.
B) IF THE LAST LISTING WAS A COMPARISON LISTING, AND YOU CAN
FIND THE PREVIOUS LISTING'S LREC FILE, JUST DO
:@ FOO OLR68/G,FOO 69/O
IF THE NEW VERSION OF FOO IS 70, AND THE LAST LISTED
VERSION WAS FOO 69, THEN FOO OLR68 SHOULD BE THE LREC FILE
WRITTEN WHEN, SAY, FOO 68 WAS LISTED. SINCE /G WOULD
NORMALLY CAUSE FOO > TO BE LISTED, AND WE WANT TO MAKE AN
LREC FOR FOO 69, WE MUST SPECIFY THE FILENAME EXPLICITLY.
NOTE THAT ALTHOUGH THE LREC INPUT NAMES ARE SPECIFIED
EXPLICITLY, THE OUTPUT NAMES ARE DEFAULETD TO FOO LREC.
AFTER DOING A) OR B), WE COULD GO ON TO LIST FOO 70 AS IN [2].
C) SUPPOSE THINGS ARE AS IN B) EXCEPT THAT FOO 69 HAS BEEN
DELETED. THEN WE CAN'T PROCEED AS IN B). WHAT CAN BE DONE?
:@ FOO OLR68/G
THIS WILL LIST FOO 70 AGAINST FOO 68. WE WILL GET SOME
EXTRA PAGES PRINTED - THOSE CHANGED BETWEEN 68 AND 69 AND
NOT CHANGED BETWEEN 69 AND 70 - BUT WE WON'T BE SCREWED.
THE ALTERNATE NAMING SCHEME FOR LREC FILES:
(IN THIS SCHEME, THE LREC FILE FOR SYSENG;DDT <NNN> IS CALLED
SYSLRC;DDTLR <NNN>, SO ANY NUMBER OF BACKUP LREC FILES MAY BE
KEPT AND IT IS CLEAR WHICH LISTING VERSIONS THEY BELONG TO.
THE SNAME AND FN1 OF THE LREC FILE MAY BE CHOSEN ARBITRARILY
BUT SHOULD NOT BE THE SAME AS THE SOURCE FILE'S).
[1] TO MAKE THE INITIAL LISTING, AND START USING THE ALTERNATE
NAMING SCHEME, JUST DO
:@ FOO/M,FOOLRC←'/@
THE ONLY DIFFERENCE BETWEEN THIS AND THE METHID FOR THE OLD
NAMING SCHEME IS THE "/M", WHICH BOTH SELECTS THE ALTERNATE
NAMING SCHEME AND IDENTIFIES THE FILE FOO AS THE ONE WHOSE
VERSION NUMBER SHOULD BE USED IN THE LREC FILE. THUS, IF THE
VERSION OF FOO BEING LISTED IS "FOO 70", THE LREC FILE WILL BE
CALLED "FOOLRC 70".
IF MORE THAN ONE FILE IS BEING LISTED, THE /M SHOULD GO WITH THE
FILE WHICH IS MOST CERTAIN TO CHANGE EVERY LISTING. IT WILL BE
THAT FILE WHOSE FN2 IS USED AS THE LREC FILE'S FN2 EACH TIME.
HOWEVER, THE ALTERNATE NAMING SCHEME ISN'T AS WINNING IF THERE
ARE MORE THAN ONE FILE BEING LISTED.
[2] LISTINGE THE NEXT VERSION IS JUST THE SAME AS BEFORE,
BECAUSE THE /G USES THE /M WHICH WAS REMEMBERED IN THE LREC FILE.
[3] DITTO.
[4] BECOMES
A) :@ FOO 69/M/O,FOOLRC←'/@
B) :@ FOOLRC 68/G/O,FOO 69
C) :@ FOOLRC 68/G
HOW DO YOU SWITCH BETWEEN THE NAMING SCHEMES?
IF THE OUTPUT LREC FILE NAMES ARE EXPLICITLY SPECIFIED THEY
DON'T COME INTO PLAY AT ALL:
:@ FOO LREC←FOOLRC >/G
HOWEVER, THE LREC FILES WILL STIL REMEMBER WHICH SCHEME TO USE
IF YOU EVER FAIL TO DO THIS. TO CHANGE THAT MEMORY, USE /M:
:@ FOOLRC←FOO LREC/G,FOO/M
WILL SWITCH FROM THE OLD SCHEME TO THE ALTERNATE, AND
:@ FOO←FOOLRC/G/-M
WILL SWITCH FROM THE ALTERNATE SCHEME TO THE OLD ONE.